Reasoning about correctness properties of a coordination programming language
نویسنده
چکیده
Safety critical systems place additional requirements to the programming language used to implement them with respect to traditional environments. Examples of features that influence the suitability of a programming language in such environments include complexity of definitions, expressive power, bounded space and time and verifiability. Hume is a novel programming language with a design which targets the first three of these, in some ways, contradictory features: fully expressive languages cannot guarantee bounds on time and space, and low-level languages which can guarantee space and time bounds are often complex and thus error-phrone. In Hume, this contradiction is solved by a two layered architecture: a high-level fully expressive language, is built on top of a low-level coordination language which can guarantee space and time bounds. This thesis explores the verification of Hume programs. It targets safety properties, which are the most important type of correctness properties, of the low-level coordination language, which is believed to be the most error-prone. Deductive verification in Lamport’s temporal logic of actions (TLA) is utilised, in turn validated through algorithmic experiments. This deductive verification is mechanised by first embedding TLA in the Isabelle theorem prover, and then embedding Hume on top of this. Verification of temporal invariants is explored in this setting. In Hume, program transformation is a key feature, often required to guarantee space and time bounds of high-level constructs. Verification of transformations is thus an integral part of this thesis. The work with both invariant verification, and in particular, transformation verification, has pinpointed several weaknesses of the Hume language. Motivated and influenced by this, an extension to Hume, called Hierarchical Hume, is developed and embedded in TLA. Several case studies of transformation and invariant verification of Hierarchical Hume in Isabelle are conducted, and an approach towards a calculus for transformations is examined.
منابع مشابه
Reasoning about Multi-process Systems with the Box Calculus
The box calculus is a formalism for reasoning about the properties of multi-process systems which enables account to be taken of pragmatic as well as computational concerns. It was developed for the programming language Hume which explicitly distinguishes between coordination, based on concurrent boxes linked by wires, and expressions, based on polymorphic recursive functions. This chapter intr...
متن کاملVerifying the Correctness of Hume Programs
Hume is a programming language targeted at safety-critical, resource-bounded systems. Bounded time and space usage is achieved by a clear separation of coordination and computation in the design of the language. However, there is no correctness verification. Such verification is imperative in safety-critical environments. It is our contention that the language design makes a combination of dedu...
متن کاملProving Correctness of Constraint Logic
A general framework based on Hoare logic is introduced for specifying and reasoning about Constraint Logic Programs with dynamic scheduling. The framework consists of a mixed formalism of programs in a ccp-like language, on the one hand, and correctness properties of the Hoare logic, on the other hand. In this formalism delay conditions are viewed as a speciic class of correctness properties. I...
متن کاملWorkflow Process Engine Interface External Workflow Engines
We introduce the ActivityFlow speciication language for in-cremental speciication and exible coordination of workkow activities. The most interesting features of the ActivityFlow speciication language include (1) a collection of speciication mechanisms, which provides a workkow designer with a uniform workkow speciication interface to describe diierent types (i.e., ad-hoc, administrative, or pr...
متن کاملVerifying Temporal Properties in HW-Hume
H is a modern formally-defined programming language targeted at safety-critical, resource-bounded systems. A key feature of H is the clear separation between computation and coordination, achieved through a finite-state-automata based approach, where a purely functional computation layer is embedded into a reactive coordination layer that manages interactions between processes and with th...
متن کامل